package com.gitee.sop.order.pay.base;

import com.alibaba.fastjson.JSON;
import com.gitee.sop.order.pay.entity.PayConfig;
import com.gitee.sop.order.pay.service.PayConfigService;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Objects;

/**
 * 通用处理支付配置信息
 *
 * @author Admin
 */
@Service
public class PayBaseService {

    @Resource
    private PayConfigService payConfigService;

    /**
     * 获取指定的支付配置信息
     *
     * @param clz  指定的配置文件class
     * @param type 类型
     * @param <T>  指定的配置文件class 类型
     * @return
     */
    public <T> T getPayConfig(Class<T> clz, String type) {
        PayConfig payConfig = payConfigService.getByCodeAndStatus(type);
        if (Objects.nonNull(payConfig)) {
            String parameterJson = payConfig.getParameterJson();
            if (StringUtils.isNotBlank(parameterJson)) {
                return JSON.parseObject(parameterJson, clz);
            }
        }
        return null;
    }
}
